/*====================================================================================================*/
/*====================================================================================================*/
#include "drivers\stm32f4_system.h"

#include "algorithm_compare.h"
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU8
**功能 : Compare u8 Arr1 and u8 Arr2
**輸入 : arr1, arr2, lens
**輸出 : state
**使用 : Cmp_ArrU8(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
int8_t Cmp_ArrU8( const uint8_t *arr1, const uint8_t *arr2, uint32_t lens )
{
  uint32_t errCnt = 0;

  while(lens--) {
    if(arr1[lens] != arr2[lens])
      errCnt++;
  }

  return ((errCnt == 0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU16
**功能 : Compare u16 Arr1 and u16 Arr2
**輸入 : arr1, arr2, lens
**輸出 : state
**使用 : Cmp_ArrU16(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
int8_t Cmp_ArrU16( const uint16_t *arr1, const uint16_t *arr2, uint32_t lens )
{
  uint32_t errCnt = 0;

  while(lens--) {
    if(arr1[lens] != arr2[lens])
      errCnt++;
  }

  return ((errCnt == 0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU32
**功能 : Compare u32 Arr1 and u32 Arr2
**輸入 : arr1, arr2, lens
**輸出 : state
**使用 : Cmp_ArrU32(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
int8_t Cmp_ArrU32( const uint32_t *arr1, const uint32_t *arr2, uint32_t lens )
{
  uint32_t errCnt = 0;

  while(lens--) {
    if(arr1[lens] != arr2[lens])
      errCnt++;
  }

  return ((errCnt == 0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU64
**功能 : Compare u64 Arr1 and u64 Arr2
**輸入 : arr1, arr2, lens
**輸出 : state
**使用 : Cmp_ArrU64(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
int8_t Cmp_ArrU64( const uint64_t *arr1, const uint64_t *arr2, uint32_t lens )
{
  uint32_t errCnt = 0;

  while(lens--) {
    if(arr1[lens] != arr2[lens])
      errCnt++;
  }

  return ((errCnt == 0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數 : Cmp_ArrU8U16
**功能 : Compare u8 Arr1 and u16 Arr2
**輸入 : arr1, arr2, lens
**輸出 : state
**使用 : Cmp_ArrU8U16(Arr1, Arr2, sizeof(Arr1));
**====================================================================================================*/
/*====================================================================================================*/
int8_t Cmp_ArrU8U16( const uint8_t *arr1, const uint16_t *arr2, uint32_t lens )
{
  uint32_t errCnt = 0;

  while(lens--) {
    if(Byte16(uint16_t, arr1[(lens<<1)], arr1[(lens<<1)+1]) != arr2[lens])
      errCnt++;
  }

  return ((errCnt == 0) ? SUCCESS : ERROR);
}
/*====================================================================================================*/
/*====================================================================================================*/
